/**
 * @param {number[][]} intervals
 * @return {number[][]}
 */
var merge = function(intervals) {
    let len = intervals.length
    // 按起点升序排序
    intervals.sort((a, b) =>  a[0] - b[0])
    let merge = []
    // 初始化已合并数组
    merge[0] = intervals[0]
    let index = 0
    for(let i = 0; i < len; i++) {
        // 如果待合并元素的起点比合并的终点大，那么直接插入(后面的起点只会更大。所以没有前面元素的事了)
        if(intervals[i][0] > merge[index][1]) {
            merge[++index] = intervals[i]
        } else {
            // 否则合并区间，只需要取两个端点中最大的一个即可
            merge[index][1] = Math.max(intervals[i][1], merge[index][1])
        }
    }
    console.log(merge);
};
